home *** CD-ROM | disk | FTP | other *** search
- package com.extensibility.xml;
-
- import com.extensibility.util.Debug;
- import com.extensibility.util.FilteredEnumerator;
- import com.extensibility.util.StringUtilities;
- import com.extensibility.xml.dt.DataTypeFactory;
- import java.io.IOException;
- import java.util.Enumeration;
- import java.util.Hashtable;
- import java.util.Stack;
- import java.util.Vector;
-
- public class DTDFactory implements DTDParserFactoryIntf {
- public static final String REENTRANT_PE_NAME_PREFIX = "pe.";
- static final String DATA_TYPE_SUFFIX = "_dt";
- static final String ATTR_DATA_TYPE_SUFFIX = "_dt";
- static final String ELEM_DATA_TYPE_SUFFIX = "__dt";
- static final int ELEM_EXTRA_CHARS = "__dt".length() - "_dt".length();
- static final int ATTR_EXTRA_CHARS = "_dt".length() - "_dt".length();
- protected boolean alwaysThrowErrors = false;
- BaseDeclaration lastCommentedDecl;
- Stack conditionals = new Stack();
- Vector commentQueue;
- ContentModelTerm currentModelTerm;
- ContentModelTerm lastModel;
- Stack cmStack;
- int insertPosition;
- Schema dtd;
- boolean insideIgnore = false;
- boolean splitPending;
-
- public DTDFactory(Schema var1) {
- this.dtd = var1;
- this.commentQueue = new Vector();
- this.cmStack = new Stack();
- this.resetInsertPosition();
- this.splitPending = var1.getCount() == 0;
- }
-
- public void resetInsertPosition() {
- this.insertPosition = 2147483646;
- }
-
- public void setInsertPosition(int var1) {
- this.insertPosition = var1;
- }
-
- public int getInsertPosition() {
- return this.insertPosition;
- }
-
- public void createConditionalOpen(String var1, String var2, URI var3) {
- boolean var4 = var1.equals("INCLUDE");
- boolean var5 = this.insideIgnore;
- this.insideIgnore = this.insideIgnore || !var4;
- this.conditionals.push(new Boolean(var4));
- this.conditionals.push(var2);
- if (!var5) {
- MarkedSectionOpen var6 = new MarkedSectionOpen(var1, var2);
- this.setQComments(var6);
- ((BaseDeclaration)var6).setURI(var3);
- this.insertPosition = this.dtd.insertDeclaration(var6, this.insertPosition);
- }
- }
-
- public void createConditionalClose(URI var1, String var2) {
- this.conditionals.pop();
- this.conditionals.pop();
- this.insideIgnore = false;
-
- for(int var3 = 0; !this.insideIgnore && var3 < this.conditionals.size(); var3 += 2) {
- if (!(Boolean)this.conditionals.elementAt(var3)) {
- this.insideIgnore = true;
- }
- }
-
- if (!this.insideIgnore) {
- MarkedSectionClose var4 = new MarkedSectionClose(var2);
- this.setQComments(var4);
- ((BaseDeclaration)var4).setURI(var1);
- this.insertPosition = this.dtd.insertDeclaration(var4, this.insertPosition);
- }
-
- }
-
- public void createError(ParserException var1) {
- if (!this.insideIgnore) {
- this.dtd.addError(var1);
- }
- }
-
- private Vector[] splitVector(Vector var1) {
- Vector[] var2 = new Vector[]{new Vector(), new Vector()};
-
- int var3;
- for(var3 = 0; var3 < var1.size() && ((Comment)var1.elementAt(var3)).getComment().length() != 0; ++var3) {
- var2[0].addElement(var1.elementAt(var3));
- }
-
- for(int var4 = var3 + 1; var4 < var1.size(); ++var4) {
- var2[1].addElement(var1.elementAt(var4));
- }
-
- return var2;
- }
-
- private boolean isCommentSplitPending() {
- return this.splitPending;
- }
-
- private void setCommentSplitPending(boolean var1) {
- this.splitPending = var1;
- }
-
- void setQComments(BaseDeclaration var1) {
- if (!this.insideIgnore) {
- if (this.isCommentSplitPending()) {
- Vector[] var2 = this.splitVector(this.commentQueue);
- this.dtd.setComments(this.dtd.getStructure().getSystemURI(), var2[0]);
- this.commentQueue = var2[1];
- this.setCommentSplitPending(false);
- }
-
- var1.setComments(this.commentQueue);
- this.commentQueue = new Vector();
- this.lastCommentedDecl = var1;
- }
- }
-
- public void createCMOpen() {
- if (!this.insideIgnore) {
- this.cmStack.push(this.currentModelTerm);
- this.currentModelTerm = new ContentModelTerm();
- }
- }
-
- public void createCMClose(int[] var1, char var2) {
- if (!this.insideIgnore) {
- this.currentModelTerm.setConnection(var2);
- this.currentModelTerm.setOccurance(var1[0], var1[1]);
- this.lastModel = this.currentModelTerm;
- this.currentModelTerm = (ContentModelTerm)this.cmStack.pop();
- if (this.lastModel != this.currentModelTerm) {
- this.currentModelTerm.addTerm(this.lastModel);
- }
-
- }
- }
-
- public void createCMTerm(String var1, int[] var2, char var3) {
- if (!this.insideIgnore) {
- int var4 = var1.indexOf(ContentModelTerm.TAG_TYPE_SEPARATOR);
- if (var1.equals("#PCDATA")) {
- if (this.currentModelTerm.getLeafCount() > 0) {
- this.createError(new ParserException(266, ""));
- } else if (this.cmStack.size() > 1) {
- this.createError(new ParserException(270, ""));
- } else {
- this.currentModelTerm.addTerm(new ContentModelTerm(1));
- }
- } else if (var4 >= 0) {
- String var5 = var1.substring(0, var4);
- var1 = var1.substring(var4 + 1);
- ContentModelTerm var6 = new ContentModelTerm(new TypeRef(var1), var2[0], var2[1], var3);
- var6.setLocalTag(var5);
- this.currentModelTerm.addTerm(var6);
- } else {
- this.currentModelTerm.addTerm(new ContentModelTerm(new TypeRef(var1), var2[0], var2[1], var3));
- }
-
- }
- }
-
- public void createCMTerm(int var1) {
- if (!this.insideIgnore) {
- this.currentModelTerm.addTerm(new ContentModelTerm(var1));
- }
- }
-
- public void cloneAttrDecl(String var1, String var2, String var3) {
- if (!this.insideIgnore) {
- Object var4 = this.dtd.getNamedElement(var2);
- if (var4 == null) {
- Debug.trace(String.valueOf("Element not found while cloning attribute: ").concat(String.valueOf(var2)));
- var4 = this.dtd.createUnknownOwner(var2);
- }
-
- ElementDeclaration var5 = this.dtd.getNamedElement(var3);
- AttributeDeclaration var7 = null;
- Enumeration var8 = ((AttributeDeclaration.Owner)var4).getOwnedAttributes();
-
- while(var8.hasMoreElements()) {
- AttributeDeclaration var6 = (AttributeDeclaration)var8.nextElement();
- if (((BaseDeclaration)var6).getName().equals(var1)) {
- var7 = (AttributeDeclaration)var6.clone(var5);
- break;
- }
- }
-
- Debug.assert(var7 != null, "attr not found");
- this.insertPosition = this.dtd.insertDeclaration(var7, this.insertPosition);
- }
- }
-
- public void createAttrDecl(String var1, String var2, Object var3, Vector var4, boolean var5, String var6, URI var7) {
- if (!this.insideIgnore) {
- int var8 = 0;
- if (var3 instanceof Integer) {
- var8 = (Integer)var3;
- Object var9 = this.dtd.getNamedElement(var1);
- if (var9 == null) {
- var9 = this.dtd.createUnknownOwner(var1);
- }
-
- AttributeDeclaration var10 = new AttributeDeclaration((AttributeDeclaration.Owner)var9, var2, DataTypeFactory.createDataType(var8), var4, var5, var6);
- this.setQComments(var10);
- ((BaseDeclaration)var10).setURI(var7);
- this.insertPosition = this.dtd.insertDeclaration(var10, this.insertPosition);
- } else {
- Debug.assert(false, "peRef for enumeration not supported.");
- }
- }
- }
-
- private boolean doAsDataType(AttributeDeclaration.Owner var1, String var2, Object var3, String var4) {
- if (var4 == null) {
- return false;
- } else {
- int var5 = 0;
- if (var3 instanceof Integer) {
- var5 = (Integer)var3;
- int var6 = var2.indexOf("_dt");
- if (var6 >= 0 && var2.substring(var6 - ELEM_EXTRA_CHARS).equals("__dt")) {
- ((ElementDeclaration)var1).setDataType(DataTypeFactory.createDataType(var4));
- return true;
- } else {
- if (var6 >= 0 && var2.substring(var6 - ATTR_EXTRA_CHARS).equals("_dt")) {
- String var14 = var2.substring(0, var2.length() - "_dt".length());
- AttributeDeclaration var15 = ((ElementDeclaration)var1).getAttribute(var14);
- if (var15 != null) {
- var15.setDataType(DataTypeFactory.createDataType(var4));
- return true;
- }
-
- this.createError(new ParserException(237, var14));
- } else if (var2.equals("e-dtype") && var5 == 7) {
- Debug.assert(var1 instanceof ElementDeclaration, String.valueOf("metadata poperty not owned by element: ").concat(String.valueOf(var1.getName())));
- ((ElementDeclaration)var1).setDataType(DataTypeFactory.createDataType(this.dtd.expandPERefs(var4, (BaseDeclaration)null)));
- } else if (var2.equals("a-dtype") && var5 == 8) {
- Debug.assert(var1 instanceof ElementDeclaration, String.valueOf("metadata poperty not owned by element: ").concat(String.valueOf(var1.getName())));
- ElementDeclaration var7 = (ElementDeclaration)var1;
- Vector var8 = StringUtilities.parseNames(this.dtd.expandPERefs(var4, (BaseDeclaration)null));
- Debug.assert(var8.size() % 2 == 0, "odd number of pairs");
- int var9 = 0;
-
- while(var9 < var8.size()) {
- String var10 = (String)var8.elementAt(var9++);
- String var11 = (String)var8.elementAt(var9++);
- AttributeDeclaration var12 = var7.getAttribute(var10);
- if (var12 != null) {
- var12.setDataType(DataTypeFactory.createDataType(var11));
- } else {
- this.createError(new ParserException(237, var10));
- }
- }
-
- return true;
- }
-
- return false;
- }
- } else {
- return false;
- }
- }
- }
-
- private String extractElementTypePropertyName(String var1) {
- for(int var2 = 0; var2 < SchemaIntf.KNOWN_ELEM_META_PROP_ATTRS.length; ++var2) {
- if (var1.equals(SchemaIntf.KNOWN_ELEM_META_PROP_ATTRS[var2])) {
- return SchemaIntf.KNOWN_META_PROPS[var2];
- }
- }
-
- return null;
- }
-
- private String extractAttributeTypePropertyName(String var1) {
- for(int var2 = 0; var2 < SchemaIntf.KNOWN_ATTR_META_PROP_ATTRS.length; ++var2) {
- if (var1.equals(SchemaIntf.KNOWN_ATTR_META_PROP_ATTRS[var2])) {
- return SchemaIntf.KNOWN_META_PROPS[var2];
- }
- }
-
- return null;
- }
-
- private boolean doAsMetaProp(AttributeDeclaration.Owner var1, String var2, Object var3, String var4) {
- int var5 = 0;
- if (var3 instanceof Integer) {
- var5 = (Integer)var3;
- if (var5 != 7 && var5 != 8 && var5 != 9) {
- return false;
- } else {
- String var6 = this.extractElementTypePropertyName(var2);
- if (var6 != null) {
- Debug.assert(var1 instanceof ElementDeclaration, String.valueOf("metadata poperty not owned by element: ").concat(String.valueOf(var1.getName())));
- ElementDeclaration var15 = (ElementDeclaration)var1;
- ((BaseDeclaration)var15).putMetaProp(var6, var4);
- return true;
- } else {
- var6 = this.extractAttributeTypePropertyName(var2);
- if (var6 != null) {
- Debug.assert(var1 instanceof ElementDeclaration, String.valueOf("metadata poperty not owned by element: ").concat(String.valueOf(var1.getName())));
- ElementDeclaration var7 = (ElementDeclaration)var1;
- Vector var8 = StringUtilities.parseNames(var4);
- Debug.assert(var8.size() % 2 == 0, "odd number of pairs");
- int var9 = 0;
-
- while(var9 < var8.size()) {
- String var10 = (String)var8.elementAt(var9++);
- String var11 = (String)var8.elementAt(var9++);
- AttributeDeclaration var12 = var7.getAttribute(var10);
- if (var12 != null) {
- ((BaseDeclaration)var12).putMetaProp(var6, var11);
- } else {
- this.createError(new ParserException(237, var10));
- }
- }
-
- return true;
- } else {
- return false;
- }
- }
- }
- } else {
- return false;
- }
- }
-
- public void createAttrDecl(String var1, String var2, Object var3, boolean var4, String var5, URI var6) {
- if (!this.insideIgnore) {
- Object var7 = this.dtd.getNamedElement(var1);
- boolean var8 = var7 != null;
- if (!var8) {
- var7 = this.dtd.createUnknownOwner(var1);
- } else {
- if (this.doAsDataType((AttributeDeclaration.Owner)var7, var2, var3, var5)) {
- return;
- }
-
- if (this.doAsMetaProp((AttributeDeclaration.Owner)var7, var2, var3, var5)) {
- return;
- }
- }
-
- AttributeDeclaration var9 = new AttributeDeclaration((AttributeDeclaration.Owner)var7, var2, DataTypeFactory.createDataType(var3), var4, var5);
- this.setQComments(var9);
- ((BaseDeclaration)var9).setURI(var6);
- this.insertPosition = this.dtd.insertDeclaration(var9, this.insertPosition);
- }
- }
-
- public void updateAttrDecl(String var1, String var2, Object var3, Vector var4, boolean var5, String var6) {
- if (!this.insideIgnore) {
- AttributeDeclaration var7 = this.dtd.getNamedAttribute(var1, var2);
- var7.setDataType(DataTypeFactory.createDataType(var3));
- if (var4 != null) {
- var7.setChoices(var4, (Hashtable)null);
- }
-
- var7.setRequired(var5);
- if (var6 != null) {
- var7.setDefault(var6);
- }
-
- }
- }
-
- public String getPE(boolean var1, String var2) {
- ParameterEntityDeclaration var3 = this.dtd.getNamedParameterEntity(var2);
- if (var1) {
- return var3 == null ? null : ((EntityDeclaration)var3).getValue();
- } else {
- return var3 == null ? null : ((EntityDeclaration)var3).getSystemID().toSource();
- }
- }
-
- public void parseBegun(DTDParser var1) {
- this.setCommentSplitPending(true);
- }
-
- public void parseEnded(DTDParser var1) {
- }
-
- public void cloneElementDecl(String var1, String var2) {
- if (!this.insideIgnore) {
- ElementDeclaration var3 = this.dtd.getNamedElement(var1);
- Debug.assert(var3 != null);
- ElementDeclaration var4 = (ElementDeclaration)var3.clone();
- ((BaseDeclaration)var4).setName(var2);
- this.insertPosition = this.dtd.insertDeclaration(var4, this.insertPosition);
- }
- }
-
- public void createElementDecl(String var1, URI var2) {
- if (!this.insideIgnore) {
- ElementDeclaration var3 = new ElementDeclaration(var1);
- this.setQComments(var3);
- ((BaseDeclaration)var3).setURI(var2);
- this.currentModelTerm = var3.getContentModel();
- this.currentModelTerm.updateModelTerm();
- this.cmStack.setSize(0);
- this.insertPosition = this.dtd.insertDeclaration(var3, this.insertPosition);
- }
- }
-
- public void createUnparsedEntityDecl(String var1, String var2, URI var3, String var4, URI var5) {
- if (!this.insideIgnore) {
- ExternalGEDeclaration var6 = new ExternalGEDeclaration(var1, var2, var3, var4);
- this.setQComments(var6);
- ((BaseDeclaration)var6).setURI(var5);
- this.insertPosition = this.dtd.insertDeclaration(var6, this.insertPosition);
- }
- }
-
- public void createParamEntityDecl(String var1, String var2, URI var3, URI var4) {
- if (!this.insideIgnore) {
- ExternalPEDeclaration var5 = new ExternalPEDeclaration(var1, var2, var3);
- this.setQComments(var5);
- ((BaseDeclaration)var5).setURI(var4);
- this.insertPosition = this.dtd.insertDeclaration(var5, this.insertPosition);
- }
- }
-
- public void createParamEntityDecl(String var1, String var2, URI var3) {
- if (!this.insideIgnore) {
- InternalPEDeclaration var4 = new InternalPEDeclaration(var1, var2);
- this.setQComments(var4);
- ((BaseDeclaration)var4).setURI(var3);
- this.insertPosition = this.dtd.insertDeclaration(var4, this.insertPosition);
- if (var2 != null && !var2.equals("")) {
- var4.tryMakingReusable(this.dtd);
- }
-
- }
- }
-
- public void createGeneralEntityDecl(String var1, String var2, URI var3, URI var4) {
- if (!this.insideIgnore) {
- ExternalGEDeclaration var5 = new ExternalGEDeclaration(var1, var2, var3);
- this.setQComments(var5);
- ((BaseDeclaration)var5).setURI(var4);
- this.insertPosition = this.dtd.insertDeclaration(var5, this.insertPosition);
- }
- }
-
- public void createGeneralEntityDecl(String var1, String var2, URI var3) {
- if (!this.insideIgnore) {
- InternalGEDeclaration var4 = new InternalGEDeclaration(var1, var2);
- this.setQComments(var4);
- ((BaseDeclaration)var4).setURI(var3);
- this.insertPosition = this.dtd.insertDeclaration(var4, this.insertPosition);
- }
- }
-
- public void createPI(String var1, String var2, URI var3) {
- if (!this.insideIgnore) {
- ProcessingInstruction var4 = new ProcessingInstruction(var1, var2);
- this.setQComments(var4);
- ((BaseDeclaration)var4).setURI(var3);
- this.insertPosition = this.dtd.insertDeclaration(var4, this.insertPosition);
- }
- }
-
- public void createNotationDecl(String var1, String var2, URI var3, URI var4) {
- if (!this.insideIgnore) {
- NotationDeclaration var5 = new NotationDeclaration(var1, var2, var3);
- this.setQComments(var5);
- ((BaseDeclaration)var5).setURI(var4);
- this.insertPosition = this.dtd.insertDeclaration(var5, this.insertPosition);
- }
- }
-
- public void createComment(String var1) {
- if (!this.insideIgnore) {
- this.commentQueue.addElement(new Comment(var1));
- }
- }
-
- public void createComment(String var1, boolean var2) {
- if (!this.insideIgnore) {
- if (var2) {
- this.createComment(var1);
- } else if (this.lastCommentedDecl != null) {
- this.lastCommentedDecl.addComment(new Comment(var1));
- }
-
- }
- }
-
- public void createExternalSubsetOpen(String var1, URI var2, URI var3) {
- if (!this.insideIgnore) {
- ExternalSubset var4 = new ExternalSubset(this.dtd.getStructure(), var1, var2, var3);
- this.dtd.setStructure(var4);
- this.setQComments(var4);
- this.insertPosition = this.dtd.insertDeclaration(var4, this.insertPosition);
- this.setCommentSplitPending(true);
- }
- }
-
- public void createExternalSubsetClose() {
- if (!this.insideIgnore) {
- this.dtd.setStructure((ExternalSubset)this.dtd.getStructure().getParent());
- }
- }
-
- public boolean createAttributeGroup(String var1, String var2) {
- if (this.insideIgnore) {
- return false;
- } else {
- ParameterEntityDeclaration var3 = this.dtd.getNamedParameterEntity(var1);
- if (var3 != null && var3 instanceof InternalPEDeclaration) {
- InternalPEDeclaration var4 = (InternalPEDeclaration)var3;
- Object var5;
- if (var2.indexOf("pe.") == 0) {
- var5 = (InternalPEDeclaration)this.dtd.getNamedParameterEntity(var2.substring("pe.".length()));
- Debug.assert(var5 != null, "owner not found.");
- } else {
- var5 = this.dtd.getNamedElement(var2);
- if (var5 == null) {
- var5 = this.dtd.createUnknownOwner(var2);
- }
- }
-
- try {
- boolean var6 = this.createAttributeGroup(var4, (AttributeDeclaration.Owner)var5, false);
- return var6;
- } catch (ParserException var8) {
- if (!this.alwaysThrowErrors) {
- Debug.assert(false, "passing false into createAttributeGroup should have prevented this");
- }
-
- boolean var7 = false;
- return var7;
- }
- } else {
- return false;
- }
- }
- }
-
- public boolean setAlwaysThrowErrors(boolean var1) {
- boolean var2 = this.alwaysThrowErrors;
- this.alwaysThrowErrors = var1;
- return var2;
- }
-
- public boolean updateAttributeGroup(AttributeDeclaration.Owner var1, String var2, boolean var3) throws ParserException {
- boolean var4 = true;
- var1.getAttributeGroup().removeAll();
- AttrGroupFactory var5 = new AttrGroupFactory(this, var1.getAttributeGroup());
- String var6 = String.valueOf(String.valueOf(String.valueOf(String.valueOf("<!ATTLIST pe.").concat(String.valueOf(var1.getName()))).concat(String.valueOf(" "))).concat(String.valueOf(var2))).concat(String.valueOf(">"));
-
- try {
- DTDParser var7 = new DTDParser(URI.makeStringURI(var6), var5, true);
- var7.parse();
- } catch (IOException var9) {
- Debug.assert(false, "parser died during constructions");
- }
-
- if (var5.parseErrors.size() > 0) {
- if (var3 || this.alwaysThrowErrors) {
- throw (ParserException)var5.parseErrors.firstElement();
- }
-
- Enumeration var10 = var5.parseErrors.elements();
-
- while(var10.hasMoreElements()) {
- this.dtd.addError((ParserException)var10.nextElement());
- }
-
- var4 = false;
- }
-
- for(FilteredEnumerator var11 = new FilteredEnumerator(var1.getAttributeGroup().getAttributes(false), Class.forName("com.extensibility.xml.AttributeDeclaration")); var11.hasMoreElements(); var4 = true) {
- AttributeDeclaration var8 = (AttributeDeclaration)var11.nextElement();
- ((BaseDeclaration)var8).setURI(var1.getURI());
- var8.setOwner(var1);
- this.dtd.insertDeclaration(var8, (BaseDeclaration)null);
- ++this.insertPosition;
- }
-
- return var4;
- }
-
- public boolean createAttributeGroup(InternalPEDeclaration var1, AttributeDeclaration.Owner var2, boolean var3) throws ParserException {
- AttributeGroup var4 = var1.getAttributeGroup();
- if (var4 != null) {
- if (var2 != null) {
- var2.add(var4);
- }
-
- return true;
- } else {
- AttributeGroup var5 = new AttributeGroup(var1);
- var1.setAttributes(var5);
- boolean var6 = this.updateAttributeGroup(var1, ((EntityDeclaration)var1).getValue(), var3);
- if (!var6) {
- var1.clearAttributes();
- }
-
- if (var2 != null && var6) {
- var2.add(var5);
- }
-
- return var6;
- }
- }
-
- public void changeTerms(int[] var1, char var2) {
- if (!this.insideIgnore) {
- Debug.assert(this.lastModel.isGroup(), "last model must be a group");
- Debug.assert(this.currentModelTerm != null, "currentModelTerm expected to be non-null");
- ContentModelTerm var3 = new ContentModelTerm();
- var3.setConnection(var2);
- var3.setOccurance(var1[0], var1[1]);
- if (this.lastModel != this.currentModelTerm) {
- this.currentModelTerm.subjugateTerm(this.lastModel, var3);
- }
-
- }
- }
-
- public char createContentTerms(String var1, boolean var2, ParserException var3) {
- if (this.insideIgnore) {
- return '\u0000';
- } else {
- ParameterEntityDeclaration var4 = this.dtd.getNamedParameterEntity(var1);
- if (var4 != null && var4 instanceof InternalPEDeclaration) {
- InternalPEDeclaration var5 = (InternalPEDeclaration)var4;
- ContentModel var6 = var5.getContentModel();
- if (var6 == null) {
- var6 = var5.createContentModel();
- String var7 = ((EntityDeclaration)var5).getValue();
- Vector var8 = new Vector();
-
- try {
- var8 = this.reparseContentModel(var5, var7, var2);
- } catch (ParserException var10) {
- this.createError(var10.adoptContext(var3));
- }
-
- if (var8 != null && var8.size() > 0) {
- for(int var9 = 0; var9 < var8.size(); ++var9) {
- this.createError(((ParserException)var8.elementAt(var9)).adoptContext(var3));
- }
- }
- }
-
- Debug.assert(this.currentModelTerm != null, "model shouldn't be null ");
- if (var6 != this.currentModelTerm) {
- this.currentModelTerm.addTerm(var6);
- }
-
- this.lastModel = var6;
- return ((ContentModelTerm)var6).getChildConnection();
- } else {
- return '\u0000';
- }
- }
- }
-
- private Vector reparseContentModel(ContentModelOwner var1, String var2, boolean var3) throws ParserException {
- Stack var4 = this.cmStack;
- ContentModelTerm var5 = this.currentModelTerm;
- this.currentModelTerm = var1.getContentModel();
- this.currentModelTerm.updateModelTerm();
-
- ContentTermFactory var6;
- try {
- var6 = new ContentTermFactory(this);
- DTDParser.parseModel(var2, var6, true, var3);
- } finally {
- this.cmStack = var4;
- this.currentModelTerm = var5;
- }
-
- return var6.getParseErrors();
- }
-
- public void checkAttributeGroup(String var1, String var2) throws ParserException {
- InternalPEDeclaration var3 = new InternalPEDeclaration(var1, "#DUMMY#");
- AttributeGroup var4 = new AttributeGroup(var3);
- var3.setAttributes(var4);
-
- try {
- this.updateAttributeGroup(var3, var2, true);
- } finally {
- var4.removeAll();
- }
-
- }
-
- public void checkContentModel(String var1, String var2, boolean var3) throws ParserException {
- InternalPEDeclaration var4 = new InternalPEDeclaration(var1, "#DUMMY#");
- ContentModel var5 = var4.createContentModel();
-
- try {
- this.reparseContentModel(var4, var2, var3);
- } finally {
- ((ContentModelTerm)var5).removeAll();
- }
-
- }
-
- public void updateContentModel(ContentModelOwner var1, String var2, boolean var3) throws ParserException {
- if (DTDParser.isWhiteString(var2)) {
- ContentModel var4 = var1.getContentModel();
- var4.updateContentModelToBlank();
- } else {
- this.reparseContentModel(var1, var2, var3);
- }
- }
-
- public void setEncoding(String var1) {
- if (this.dtd != null) {
- this.dtd.setEncoding(var1);
- }
- }
- }
-